package cn.bandeqing.dispatch.resp;

import cn.bandeqing.order.resp.OrderDetailResp;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.io.Serializable;
import java.sql.Timestamp;
import java.util.List;

@Data
public class DispatchDetailResp implements Serializable {

    /**
     * 订单ID
     */
    @Schema(description = "订单ID")
    private Long orderId;

    @Schema(description = "客户名称")
    private String customerName;

    @Schema(description = "客户电话")
    private String customerPhone;

    @Schema(description = "服务时间")
    private Timestamp serviceTime;

    @Schema(description = "起点")
    private String startAddress;

    private Double startAddressLng;

    private Double startAddressLat;

    @Schema(description = "新家")
    private String newAddress;

    private Double newAddressLng;

    private Double newAddressLat;

    private Double distance;

//    private Long productTypeId;
    private String productTypeName;

    private Long productId;
    private String productName;

    private Boolean moveHouse;

    private String cityCode;
    private String cityName;

    private Integer startFloor;
    private Boolean startElevator;

    private Integer newFloor;
    private Boolean newElevator;

    private String serviceRemark;

    private Long owId;

    /**
     * 0=实习生 1=收纳师 2=副领队 3=领队
     */
    private Integer owType;

    private List<TeamMember> teamMembers;

    @Data
    public static class TeamMember implements Serializable {

        @Schema(description = "昵称")
        private String workerNickName;

        @Schema(description = "电话")
        private String workerPhone;

        @Schema(description = "技能")
        private String workerSkills;

        @Schema(description = "工具")
        private String workerTools;

        @Schema(description = "0=实习生 1=收纳师 2=副领队 1=领队")
        private Integer owType;

    }

    private List<OrderDetailResp.ProductDetail> productDetails;

    @Data
    public static class ProductDetail implements Serializable {

        private Long productInventoryRecordId;

        private Long inventoryId;

        /**
         * 规格ID
         */
        private Long productSpecificationId;

        private String productSpecification;

        private Long productId;

        private String productName;

        private Double productPrice;

        private Double productTotalPrice;

        /**
         * 店铺ID
         */
        private Long storeId;

        private String storeName;

        private Integer afterInventory;

        /**
         * 库存
         */
        private Integer changeInventory;

        private Integer beforeInventory;

        private Long orderId;

        private String remark;

    }


}
